import Vue from 'vue'
import App from './App.vue'
import router from './router' // 确保导入了router配置
import store from './store' // 导入Vuex store
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.config.productionTip = false

Vue.use(ElementUI)

// 添加全局指令，用于检查登录状态
Vue.directive('auth-click', {
  bind(el, binding, vnode) {
    el.addEventListener('click', (e) => {
      // 如果未登录，则阻止默认行为并跳转到登录页
      if (!store.getters.isAuthenticated) {
        e.preventDefault()
        e.stopPropagation()
        
        // 获取当前路由路径作为重定向参数
        const currentPath = router.currentRoute.fullPath
        
        // 显示提示信息
        vnode.context.$message({
          type: 'warning',
          message: '请先登录后再操作'
        })
        
        // 跳转到登录页
        router.push({
          path: '/login',
          query: { redirect: currentPath }
        })
        
        return false
      }
      
      // 如果有传入回调函数，则执行
      if (typeof binding.value === 'function') {
        binding.value(e)
      }
    })
  }
})

new Vue({
  render: h => h(App),
  router, // 确保将router传递给Vue实例
  store // 添加store
}).$mount('#app')
